package org.xyl.service;

import org.xyl.dto.DiagnosisRequest;
import org.xyl.dto.DiagnosisResponse;
import org.xyl.model.KnowledgeDocument;
import java.util.List;
import java.util.Map;

/**
 * RAG服务接口
 */
public interface RagService {
    
    /**
     * 初始化知识库
     */
    void initializeKnowledgeBase();
    
    /**
     * 添加文档到知识库
     * @param documents 文档列表
     */
    void addDocuments(List<KnowledgeDocument> documents);
    
    /**
     * 基于查询检索相关知识
     * @param query 查询文本
     * @param filters 过滤条件
     * @return 相关文档列表
     */
    List<KnowledgeDocument> retrieveKnowledge(String query, Map<String, Object> filters);
    
    /**
     * 执行诊断分析
     * @param request 诊断请求
     * @return 诊断响应
     */
    DiagnosisResponse performDiagnosis(DiagnosisRequest request);
    
    /**
     * 生成解决方案
     * @param problemCode 问题代码
     * @param context 上下文信息
     * @return 解决方案
     */
    String generateSolution(String problemCode, String context);
}